Reducing the Verbosity of Imperative Model Refinements by Using General-Purpose Language Facilities
نویسندگان
چکیده
Refinements are model transformations that leave large parts of the source models unchanged. Therefore, if refinements are executed outplace, model elements need to be copied to the target model. Refinements written in imperative languages are increasingly verbose, unless suitable language facilities exist for creating these copies implicitly. Thus, for languages restricted to general-purpose facilities, the verbosity of refinements is still an open problem. Existing approaches towards reducing this verbosity suffer from the complexity of developing a higher-order transformation to synthesize the copying code. In this paper, we propose a generic transformation library for creating implicit copies, reducing the verbosity without a higher-order transformation. We identify the underlying general-purpose language facilities, and compare state-of-the-art languages against these requirements. We give a proof of concept using the imperative QVTo language, and showcase the ability of our library to reduce the verbosity of an industrial-scale transformation chain.
منابع مشابه
Pre-service Language Teachers’ Cognitions about Language Learning/teaching and Cognition Refinements through a Reflection-oriented Practicum
Pre-service teacher cognition literature abounds with the concept of change as well as proposals regarding desirable conceptual changes to be undertaken so that teacher candidates can set out their path of professional development with right beliefs. Yet, such changes would seem less likely to occur if the trainees’ thoughts, beliefs, and cognitions are not identified in the f...
متن کاملBachelor Degree Project Comparing functional to imperative Java
Java has recently become a multi paradigm language, with the functional paradigm now made available alongside the traditional, imperative, one. Programming in the functional paradigm may be considered complicated or hard to read, and there may be concerns that the code it produces may become hard to maintain because of complexity or readability issues. On the other hand, proponents of the funct...
متن کاملInterpreting XPath by Iterative Pattern Matching with Paisley
The Paisley architecture is a light-weight EDSL for non-deterministic pattern matching. It automates the querying of arbitrary objectoriented data models in a general-purpose programming language, using API, libraries and simple programming patterns in a portable and noninvasive way. The core of Paisley has been applied to real-world applications. Here we discuss the extension of Paisley by pat...
متن کاملDeclarative Mesh Subdivision Using Topological Rewriting in MGS
Mesh subdivision algorithms are usually specified informally using graphical schemes defining local mesh refinements. These algorithms are then implemented efficiently in an imperative framework. The implementation is cumbersome and implies some tricky indices management. Smith et al. (2004) asks the question of the declarative programming of such algorithms in an index-free way. In this paper,...
متن کاملURSA: A System for Uniform Reduction to SAT
There are a huge number of problems, from various areas, being solved by reducing them to sat. However, for many applications, translation into sat is performed by specialized, problem-specific tools. In this paper we describe a new system for uniform solving of a wide class of problems by reducing them to sat. The system uses a new specification language ursa that combines imperative and decla...
متن کامل